#pragma once
#include "our_header.h"
// ----->
// 所有功能集合
// ---->

#pragma pack(push, 1)
typedef struct dir_item_s {
	int id;
	char type[32];
	char file_name[128];
} dir_item_t;

typedef struct dir_lists_s {
	int size;
	dir_item_t *item_head;
} dir_list_t;
#pragma pack(pop) 


// 登录验证，如果通过返回0
// username:用户名
// passed:加密后密码
// token:返回的令牌
// dir_fd:返回的dir表的主键id
int loginVrify(MYSQL *conn, char username[], char passed[], char token[], int *dir_id);

// 使用此函数应先验证用户是否存在，然后传入用户名和加密后密码，和对应的盐值
int registUser(MYSQL *conn, char username[], char salt[], char passed[], int *dir_id);

// ls指令
int getDirList(MYSQL *conn, int cur_dir_id, dir_list_t *lists);

// pwd
int getPwd(MYSQL *conn, int cur_dir_id, char path[]);

// cd 指令
int gotoDir(MYSQL *conn, int dir_id, char dest_path[], int *ret_dir_id, dir_list_t *lists);

// 删除文件
int removeFile_T(MYSQL *conn, int dir_pid, char file_name[]);

// 添加文件
int addFile_T(MYSQL *conn, int dir_pid, char file_name[], char sha256_name[], int file_size);